package com.neusoft.mid.msf.common.rest;

import com.neusoft.mid.msf.common.msg.ObjectRestResponse;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.Map;

/**
 * @program: pangu
 * @description: 框架的controller接口
 * @author: fengjd
 * @create: 2022-07-26 10:08
 **/
public interface MsfController <T,Entity>{

    /**
     * 新增记录
     * @param entity
     * @return
     */
    ObjectRestResponse<Entity> add(@RequestBody Entity entity);

    /**
     * 修改记录
     * @param entity
     * @return
     */
    ObjectRestResponse<Entity> update(@RequestBody Entity entity);


    /**
     * 插叙所有记录
     * @return
     */
    ObjectRestResponse<Entity> all();

    /**
     * 分页查询,参数使用url参数的方式传递
     * @param params
     * @return
     */
    ObjectRestResponse<Entity> list(@RequestParam Map<String,Object> params);

    /**
     * 获取当前登录的用户姓名
     * @return
     */
    String getCurrentUserName();

    /**
     * 获取当前登录的用户姓名
     * @return
     */
    String getCurrentName();

    /**
     * 获取当前登录的用户id
     * @return
     */
    String getCurrentUserId();

    /**
     * 根据物理id,查询记录,id为数字型
     * @param id
     * @return
     */
    public ObjectRestResponse<Entity> get(T id);

    /**
     * 根据物理id删除记录,id为数字型
     * @param id
     * @return
     */
    public ObjectRestResponse<Entity> remove(T id);



}
